package Model;

/**
 *
 * @author Migeon Cyril (11007322) - El Meknassi Hamza (10806466)
 */
public class Case {

    /* Attributs de la classe */
    private int etat; /* -1 case inutilisable, 0 case vide, 1 case pleine */
    private Piece piece;
    private Position position;
    private boolean caseProposee = false;

    /**
     * Constructeur de Case qui prend en paramètre une abcisse et une ordonnée
     * @param x
     * @param y 
     */
    public Case (int x, int y)
    {
        this.etat = -1;
        this.piece = null;
        this.position = new Position(x,y);
    }

    /**
     * Constructeur de Case qui prend en paramètre un état, une abcisse et une ordonnée
     * @param etat
     * @param x
     * @param y 
     */
    public Case (int etat, int x, int y)
    {
        this.etat = etat;
        this.piece = null;
        this.position = new Position(x, y);
    }

    /**
     * Get de l'etat de la case
     * @return etat
     */
    public int getEtat(){ return this.etat;}

    /**
     * Set de l'etat de la case
     * @param etat 
     */
    public void setEtat(int etat)
    {
        if (etat == -1 || etat == 0 || etat ==1)
        {
            if (this.etat == -1)
                System.out.println("Case inutilisable");
            else if (this.etat == etat)
                System.out.println("Cette case est déjà à l'état demandé");
            else
                this.etat = etat;
        }
        else
            System.out.println("Valeur impossible pour la case");
    }

     /**
     * Get de la pièce sur la case
     * @return piece
     */
    public Piece getPiece(){return this.piece;}

    /**
     * Set de la pièce sur la case
     * @param piece 
     */
    public void setPiece(Piece piece){this.piece = piece;}

    /**
     * Get de la case proposée
     * @return caseProposee
     */
    public boolean getCaseProposee(){return this.caseProposee;}

     /**
     * Set de la case proposéee
     * @param caseProposee 
     */
    public void setCaseProposee(boolean caseProposee){this.caseProposee = caseProposee;}

       /**
     * Get de la position de la case
     * @return position
     */
    public Position getPosition(){return this.position;}
}
